package br.gov.ibama.client.menu;

import br.gov.ibama.client.comum.DadosDeFuncionalidade;
import br.gov.ibama.client.visao.VisaoIndice;
import br.gov.ibama.client.visao.VisaoPopup;
import br.gov.ibama.client.visao.VisaoPrincipal;

import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;

public class MenuItemClickHandler implements ClickHandler {

	private DadosDeFuncionalidade dadosDeFuncionalidade;
	private VisaoIndice visaoIndice;
	private VisaoPopup visaoPopup;
	private VisaoPrincipal visaoPrincipal;

	public MenuItemClickHandler(DadosDeFuncionalidade dadosDeFuncionalidade,
			VisaoPrincipal visaoPrincipal) {
		this.dadosDeFuncionalidade = dadosDeFuncionalidade;
		this.visaoPrincipal = visaoPrincipal;
	}

	public void onClick(ClickEvent event) {
		visaoPrincipal.getConfiguradorDeMigalha().alteraMigalha(
				dadosDeFuncionalidade.getDadosDeModulo().getTitulo(),
				dadosDeFuncionalidade.getTitulo());
		if(getVisaoIndice() != null) {
			visaoPrincipal.getAreaDeTrabalho().setMembers(getVisaoIndice());
		} else {
			getVisaoPopup().show();
		}
		visaoPrincipal.getAreaDeTrabalho().redraw();
	}

	public VisaoIndice getVisaoIndice() {
		if (visaoIndice == null && dadosDeFuncionalidade.getPrototipo() != null) {
			visaoIndice = dadosDeFuncionalidade.getPrototipo().criaVisao();
		}
		return visaoIndice;
	}
	
	public VisaoPopup getVisaoPopup() {
		if (visaoIndice == null && dadosDeFuncionalidade.getPrototipoPopup() != null) {
			visaoPopup = dadosDeFuncionalidade.getPrototipoPopup().criaVisao();
		}
		return visaoPopup;
	}


}
